import request from '@/config/axios'
import type { Dayjs } from 'dayjs'

/** 密钥管理信息 */
export interface SecretAccount {
    id: number // ID
    rechargeTenantId?: number // 租户ID
    filterName: string // 过滤网关
    appSecret?: string // 密钥
    /** 到期时间：后端接收毫秒时间戳，前端也可能用字符串或 Dayjs 管理 */
    expireTime?: number | string | Dayjs
    balance?: number // 充值余额(元)
    enabled?: boolean // 是否启用
    /** 新增：产品权限（字典 DICT_TYPE.REQUEST_TYPE）。后端用逗号字符串存储 */
    productPermissions?: string | string[]
}

export interface SecretRechargePayload {
    id: number
    rechargeAmount: number
    remark?: string
}

// 密钥管理 API
export const SecretAccountApi = {
    // 查询密钥管理分页
    getSecretAccountPage: async (params: any) => {
        return await request.get({ url: `/vos/secret-account/page`, params })
    },

    // 查询密钥管理详情
    getSecretAccount: async (id: number) => {
        return await request.get({ url: `/vos/secret-account/get?id=` + id })
    },

    // 新增密钥管理
    createSecretAccount: async (data: SecretAccount) => {
        return await request.post({ url: `/vos/secret-account/create`, data })
    },

    // 修改密钥管理
    updateSecretAccount: async (data: SecretAccount) => {
        return await request.put({ url: `/vos/secret-account/update`, data })
    },

    // 删除密钥管理
    deleteSecretAccount: async (id: number) => {
        return await request.delete({ url: `/vos/secret-account/delete?id=` + id })
    },

    /** 批量删除密钥管理 */
    deleteSecretAccountList: async (ids: number[]) => {
        return await request.delete({ url: `/vos/secret-account/delete-list?ids=${ids.join(',')}` })
    },

    // 导出密钥管理 Excel
    exportSecretAccount: async (params: any) => {
        return await request.download({ url: `/vos/secret-account/export-excel`, params })
    },

    /** 余额充值 */
    rechargeSecretAccount: async (data: SecretRechargePayload) => {
        return await request.post({ url: `/vos/secret-account/recharge`, data })
    }
}
